package verins.GUI;

import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import verins.beans.Tipopersona;
import verins.beans.Usuario;

/**
 *
 * @author hectdx
 */
public class frmMain extends javax.swing.JFrame {
    Usuario usuario=null;
    
    /** Creates new form frmMain */
    public frmMain(Usuario usuario) {
        this.usuario=usuario;
        initComponents();
        verins.Utils.Comunes.centrarVentana(this);
        //EntityManagerFactory emf = Persistence.createEntityManagerFactory("verinsPU");
        
        new frmLogin(this).setVisible(true);
       
        
        if (this.usuario==null){
            dispose();
        }
        else{
            bloquerAccesos();
        }
       
        
    }

    
    public void setearUsuario(Usuario user){
        usuario=user;
        if (usuario!=null){
            jmModulos.setEnabled(true);
        }
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jToolBar1 = new javax.swing.JToolBar();
        jToolBar2 = new javax.swing.JToolBar();
        btnProElectorales = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JToolBar.Separator();
        btnReportes = new javax.swing.JButton();
        btnSalir = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jmiSalir = new javax.swing.JMenuItem();
        jmModulos = new javax.swing.JMenu();
        jmGestDatos = new javax.swing.JMenu();
        jmiPartidoPolitico = new javax.swing.JMenuItem();
        jmiProcesoElectoral = new javax.swing.JMenuItem();
        jmiProcEmp = new javax.swing.JMenuItem();
        jmiPersonas = new javax.swing.JMenuItem();
        jmReportes = new javax.swing.JMenu();
        jmiRempadron = new javax.swing.JMenuItem();
        jmSeguridad = new javax.swing.JMenu();
        jmiUsuarios = new javax.swing.JMenuItem();
        jmiPermisos = new javax.swing.JMenuItem();
        jmmProcesamiento = new javax.swing.JMenu();
        jmiregistrarpadrones = new javax.swing.JMenuItem();
        jmiCargaPadrones = new javax.swing.JMenuItem();
        jmiTratarPadrones = new javax.swing.JMenuItem();
        jmiProcesar = new javax.swing.JMenuItem();
        jmiProbarAlg = new javax.swing.JMenuItem();
        jmDB = new javax.swing.JMenu();
        jmiRNV = new javax.swing.JMenuItem();
        jmiConex = new javax.swing.JMenuItem();
        jmAyuda = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle(".:VERInscribe - Inicio");
        setResizable(false);

        jToolBar1.setRollover(true);

        jToolBar2.setRollover(true);

        btnProElectorales.setIcon(new javax.swing.ImageIcon(getClass().getResource("/verins/GUI/Purchase-Order-32.PNG"))); // NOI18N
        btnProElectorales.setText("Procesos Electorales");
        btnProElectorales.setFocusable(false);
        btnProElectorales.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnProElectorales.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnProElectorales.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnProElectoralesActionPerformed(evt);
            }
        });
        jToolBar2.add(btnProElectorales);
        jToolBar2.add(jSeparator1);

        btnReportes.setIcon(new javax.swing.ImageIcon(getClass().getResource("/verins/GUI/Column-Chart-32x32.png"))); // NOI18N
        btnReportes.setText("Reportes");
        btnReportes.setFocusable(false);
        btnReportes.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnReportes.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnReportes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnReportesActionPerformed(evt);
            }
        });
        jToolBar2.add(btnReportes);

        btnSalir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/verins/GUI/Login_out-32.png"))); // NOI18N
        btnSalir.setText("Salir");
        btnSalir.setFocusable(false);
        btnSalir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btnSalir.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btnSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnSalirActionPerformed(evt);
            }
        });
        jToolBar2.add(btnSalir);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/verins/GUI/logoV.png"))); // NOI18N
        jLabel1.setEnabled(false);
        jLabel1.setOpaque(true);

        jMenu1.setText("Sesión");

        jmiSalir.setText("Salir");
        jmiSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiSalirActionPerformed(evt);
            }
        });
        jMenu1.add(jmiSalir);

        jMenuBar1.add(jMenu1);

        jmModulos.setText("Módulos");

        jmGestDatos.setText("Gest. datos");

        jmiPartidoPolitico.setText("Partido político");
        jmiPartidoPolitico.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPartidoPoliticoActionPerformed(evt);
            }
        });
        jmGestDatos.add(jmiPartidoPolitico);

        jmiProcesoElectoral.setText("Proceso electoral");
        jmiProcesoElectoral.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiProcesoElectoralActionPerformed(evt);
            }
        });
        jmGestDatos.add(jmiProcesoElectoral);

        jmiProcEmp.setText("Proceso empadronamiento");
        jmiProcEmp.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiProcEmpActionPerformed(evt);
            }
        });
        jmGestDatos.add(jmiProcEmp);

        jmiPersonas.setText("Persona");
        jmiPersonas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPersonasActionPerformed(evt);
            }
        });
        jmGestDatos.add(jmiPersonas);

        jmModulos.add(jmGestDatos);

        jmReportes.setText("Reportes históricos");

        jmiRempadron.setText("Proc. Empadronamiento");
        jmiRempadron.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiRempadronActionPerformed(evt);
            }
        });
        jmReportes.add(jmiRempadron);

        jmModulos.add(jmReportes);

        jmSeguridad.setText("Seguridad");

        jmiUsuarios.setText("Usuarios");
        jmiUsuarios.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiUsuariosActionPerformed(evt);
            }
        });
        jmSeguridad.add(jmiUsuarios);

        jmiPermisos.setText("Permisos");
        jmiPermisos.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiPermisosActionPerformed(evt);
            }
        });
        jmSeguridad.add(jmiPermisos);

        jmModulos.add(jmSeguridad);

        jMenuBar1.add(jmModulos);

        jmmProcesamiento.setText("Procesamiento");

        jmiregistrarpadrones.setText("Registrar Padrones");
        jmiregistrarpadrones.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiregistrarpadronesActionPerformed(evt);
            }
        });
        jmmProcesamiento.add(jmiregistrarpadrones);

        jmiCargaPadrones.setText("Cargar padrones");
        jmiCargaPadrones.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiCargaPadronesActionPerformed(evt);
            }
        });
        jmmProcesamiento.add(jmiCargaPadrones);

        jmiTratarPadrones.setText("Tratar padrones");
        jmiTratarPadrones.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiTratarPadronesActionPerformed(evt);
            }
        });
        jmmProcesamiento.add(jmiTratarPadrones);

        jmiProcesar.setText("Procesar padrones");
        jmiProcesar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiProcesarActionPerformed(evt);
            }
        });
        jmmProcesamiento.add(jmiProcesar);

        jmiProbarAlg.setText("Probar verificación");
        jmiProbarAlg.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiProbarAlgActionPerformed(evt);
            }
        });
        jmmProcesamiento.add(jmiProbarAlg);

        jMenuBar1.add(jmmProcesamiento);

        jmDB.setText("Config.");

        jmiRNV.setText("RNV");
        jmiRNV.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiRNVActionPerformed(evt);
            }
        });
        jmDB.add(jmiRNV);

        jmiConex.setText("Conexión");
        jmiConex.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jmiConexActionPerformed(evt);
            }
        });
        jmDB.add(jmiConex);

        jMenuBar1.add(jmDB);

        jmAyuda.setText("?");
        jMenuBar1.add(jmAyuda);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap(434, Short.MAX_VALUE)
                .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addContainerGap(486, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 194, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void bloquerAccesos(){
        boolean sAdmin=usuario.getRol().getIdrol()==1;
        
       //
        btnReportes.setEnabled(sAdmin);
        jmDB.setEnabled(sAdmin);
        jmSeguridad.setEnabled(sAdmin);
        
    }
    
    
    private void jmiSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiSalirActionPerformed
        // TODO add your handling code here:
        boolean r=verins.Utils.Mensajes.confirmarRespuesta(evt, this, "Se cerrará la sesión ¿Desea continuar?");
        if (r)
            this.dispose();
    }//GEN-LAST:event_jmiSalirActionPerformed

    private void jmiProcEmpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiProcEmpActionPerformed
        // TODO add your handling code here:
        frmBusquedaProcesoEmpad frm=new frmBusquedaProcesoEmpad(null,this,usuario);
        frm.bloquearBtnNuevo();
        frm.setVisible(true);
}//GEN-LAST:event_jmiProcEmpActionPerformed

    private void jmiProcesoElectoralActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiProcesoElectoralActionPerformed
        // TODO add your handling code here:
        new frmBusquedaProcesoElectoral(usuario,this).setVisible(true);
}//GEN-LAST:event_jmiProcesoElectoralActionPerformed

    private void jmiPartidoPoliticoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPartidoPoliticoActionPerformed
        // TODO add your handling code here:
        new frmBusquedaPartidoPolitico(usuario,null).setVisible(true);
}//GEN-LAST:event_jmiPartidoPoliticoActionPerformed

    private void jmiUsuariosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiUsuariosActionPerformed
        // TODO add your handling code here:
        new frmBuscarUsuarios().setVisible(true);
    }//GEN-LAST:event_jmiUsuariosActionPerformed

    private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSalirActionPerformed
        // TODO add your handling code here:
       boolean r=verins.Utils.Mensajes.confirmarRespuesta(evt, this, "Se cerrará la sesión ¿Desea continuar?");
        if (r)
            this.dispose();
    }//GEN-LAST:event_btnSalirActionPerformed

    private void btnProElectoralesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnProElectoralesActionPerformed
        // TODO add your handling code here:
        new frmBusquedaProcesoElectoral(usuario,this).setVisible(true);
    }//GEN-LAST:event_btnProElectoralesActionPerformed

    private void jmiRempadronActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiRempadronActionPerformed
        // TODO add your handling code here:
        try{
            new verins.Utils.ImprimirReportes().ejecutarReporte("rProcEmpad.jasper", null,null);
        }catch(Exception e){
        }
    }//GEN-LAST:event_jmiRempadronActionPerformed

    private void btnReportesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnReportesActionPerformed
        // TODO add your handling code here:
        new frmReportes(null).setVisible(true);
    }//GEN-LAST:event_btnReportesActionPerformed

    private void jmiProbarAlgActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiProbarAlgActionPerformed
        // TODO add your handling code here:
        new frmProbarAlgoritmo().setVisible(true);
    }//GEN-LAST:event_jmiProbarAlgActionPerformed

    private void jmiTratarPadronesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiTratarPadronesActionPerformed
        // TODO add your handling code here:
       frmBuscarPadrones frm=new frmBuscarPadrones(null, usuario, null);
       frm.ocultarbtnSelec();
       frm.setVisible(true);
    }//GEN-LAST:event_jmiTratarPadronesActionPerformed

    private void jmiPermisosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPermisosActionPerformed
        // TODO add your handling code here:
        new frmSeleccionRoles().setVisible(true);
                
    }//GEN-LAST:event_jmiPermisosActionPerformed

    private void jmiCargaPadronesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiCargaPadronesActionPerformed
        // TODO add your handling code here:
        new frmPadronElectoral(this,usuario,null).setVisible(true);
    }//GEN-LAST:event_jmiCargaPadronesActionPerformed

    private void jmiregistrarpadronesActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiregistrarpadronesActionPerformed
        // TODO add your handling code here:
        new frmRegistrarPadronElectoral(null,this,usuario).setVisible(true);
    }//GEN-LAST:event_jmiregistrarpadronesActionPerformed

    private void jmiPersonasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiPersonasActionPerformed
        // TODO add your handling code here:
        frmBusquedaPersona frm=new frmBusquedaPersona(null);
        frm.setearTipoPersona(new Tipopersona(3));
        frm.setVisible(true);
    }//GEN-LAST:event_jmiPersonasActionPerformed

    private void jmiRNVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiRNVActionPerformed
        // TODO add your handling code here:
        new frmCargarRnv().setVisible(true);
    }//GEN-LAST:event_jmiRNVActionPerformed

    private void jmiConexActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiConexActionPerformed
        // TODO add your handling code here:
        frmConexion frm=new frmConexion();
        frm.setVisible(true);
    }//GEN-LAST:event_jmiConexActionPerformed

    private void jmiProcesarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jmiProcesarActionPerformed
        // TODO add your handling code here:
        frmProcesarPadrones frm=new frmProcesarPadrones(usuario);
        frm.setVisible(true);
    }//GEN-LAST:event_jmiProcesarActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                
               
                
                try {
                    // Set System L&F
                   UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
                } catch (UnsupportedLookAndFeelException e) {
                    // handle exception
                } catch (ClassNotFoundException e) {
                    // handle exception
                } catch (InstantiationException e) {
                    // handle exception
                } catch (IllegalAccessException e) {
                    // handle exception
                }
                
                 frmMain vMain=new frmMain(null);
                if (vMain.usuario!=null){
                    vMain.setVisible(true);
                    System.out.println(vMain.usuario);
                }
               
            }
        });
    }
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnProElectorales;
    private javax.swing.JButton btnReportes;
    private javax.swing.JButton btnSalir;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JToolBar.Separator jSeparator1;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JToolBar jToolBar2;
    private javax.swing.JMenu jmAyuda;
    private javax.swing.JMenu jmDB;
    private javax.swing.JMenu jmGestDatos;
    private javax.swing.JMenu jmModulos;
    private javax.swing.JMenu jmReportes;
    private javax.swing.JMenu jmSeguridad;
    private javax.swing.JMenuItem jmiCargaPadrones;
    private javax.swing.JMenuItem jmiConex;
    private javax.swing.JMenuItem jmiPartidoPolitico;
    private javax.swing.JMenuItem jmiPermisos;
    private javax.swing.JMenuItem jmiPersonas;
    private javax.swing.JMenuItem jmiProbarAlg;
    private javax.swing.JMenuItem jmiProcEmp;
    private javax.swing.JMenuItem jmiProcesar;
    private javax.swing.JMenuItem jmiProcesoElectoral;
    private javax.swing.JMenuItem jmiRNV;
    private javax.swing.JMenuItem jmiRempadron;
    private javax.swing.JMenuItem jmiSalir;
    private javax.swing.JMenuItem jmiTratarPadrones;
    private javax.swing.JMenuItem jmiUsuarios;
    private javax.swing.JMenuItem jmiregistrarpadrones;
    private javax.swing.JMenu jmmProcesamiento;
    // End of variables declaration//GEN-END:variables
}
